<?php


namespace Modules\User\Repositories\Contracts;


interface UserInterface
{

    /**
     * @param $openid
     * @return mixed
     * @author tan bing
     * @date 2021-08-11 11:08
     */
    public function findByOpenid($openid);

    /**
     * 根据手机号获取用户信息.
     *
     * @param $mobile
     * @return mixed
     * @author tan bing
     * @date 2021-07-19 12:59
     */
    public function getUserByMobile($mobile);

    /**
     * 获取用户信息分页数据.
     *
     * @param $param
     * @param $perpage
     * @return mixed
     * @author tan bing
     * @date 2021-07-19 12:59
     */
    public function getPageData($param, $perPage);

    /**
     * 添加或编辑用户信息.
     *
     * @param $param
     * @return mixed
     * @author tan bing
     * @date 2021-07-19 12:59
     */
    public function addAndEditUserDetail($param);

    /**
     * 根据ID获取用户信息.
     *
     * @param $id
     * @return mixed
     * @author tan bing
     * @date 2021-07-19 13:08
     */
    public function findById($id);

    /**
     * 添加用户资金变更记录.
     *
     * @param $param
     * @return mixed
     * @author tan bing
     * @date 2021-08-11 17:27
     */
    public function addUserCapitalLog($param);

    /**
     * 获取用户资金变动记录。
     *
     * @param $param
     * @param $perPage
     * @return mixed
     * @author tan bing
     * @date 2021-08-12 16:38
     */
    public function getUserCapitalLogPageData($param, $perPage);

    /**
     * 修改用户资金.
     *
     * @param $param
     * @return mixed
     * @author tan bing
     * @date 2021-08-11 17:36
     */
    public function editUserCapital($param);

    /**
     * 添加用户日志.
     *
     * @param $param
     * @return mixed
     * @author tan bing
     * @date 2021-08-12 15:43
     */
    public function addUserLog($param);

    /**
     * 获取用户日志分页数据.
     *
     * @param $param
     * @param $perPage
     * @return mixed
     * @author tan bing
     * @date 2021-08-12 15:46
     */
    public function getUserLogPageData($param, $perPage);

    /**
     * @param $param
     * @return mixed
     * @author tan bing
     * @date 2021-08-11 11:08
     */
    public function registerUser($param);

    /**
     * @param $shareCode
     * @return mixed
     * @author tan bing
     * @date 2021-10-21 15:26
     */
    public function getUserByShareCode($shareCode);

}